/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Dao;

import Bean.CadastroClienteBean;
import Utils.Conexao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
 *
 * @author william
 */
public class CadastroAudienciaDao {

    public static void salvar(CadastroAudienciaBean p) throws SQLException {
        java.sql.Connection con;
        con = Conexao.getConexao();
        String sql = "insert into audiencia (id_audiencia,juiz_audiencia,local_audiencia,data_audiencia,hora_audiencia,id_processo) values (?,?,?,?,?,?)";
        java.sql.PreparedStatement stmt = con.prepareStatement(sql);
        stmt.setInt(1, p.getIdAudiencia());
        stmt.setString(2, p.getJuizAudiencia());
        stmt.setString(3, p.getLocalAudiencia());
        stmt.setString(4, p.getDataAudiencia());
        stmt.setString(5, p.getHoraAudiencia());
        stmt.setInt(6, p.getControleProcesso().getIdProcesso());
        stmt.execute();
        stmt.close();
        con.close();
    }

    public static void alterar(CadastroAudienciaBean a) throws SQLException {
        Connection con;
        con = Conexao.getConexao();
        String query = "update audiencia set juiz_audiencia = ?, local_audiencia = ?, data_audiencia = ?, hora_audiencia = ?, id_processo = ?  where id_audiencia = ?";
        PreparedStatement stmt = con.prepareStatement(query);
        stmt.setString(1, a.getJuizAudiencia());
        stmt.setString(2, a.getLocalAudiencia());
        stmt.setString(3, a.getDataAudiencia());
        stmt.setString(4, a.getHoraAudiencia());
        stmt.setInt(5, a.getControleProcesso().getIdProcesso());
        stmt.setInt(6, a.getIdAudiencia());
        stmt.executeUpdate();
        stmt.close();
        con.close();
    }

    public static void excluir(int id) throws SQLException {
        Connection con = Conexao.getConexao();
        String sql = "delete from audiencia where id_audiencia=" + id;
        PreparedStatement stmt = con.prepareStatement(sql);
        stmt.executeUpdate();
        stmt.close();
        con.close();
    }

    public static List<CadastroAudienciaBean> pesquisa(String tipo, String nome) throws SQLException {
        List<CadastroAudienciaBean> lista = new ArrayList<CadastroAudienciaBean>();
        Connection con = Conexao.getConexao();
        String sql = "SELECT "
                + "    processo.`id_processo` AS processo_id_processo,"
                + "    processo.`numero_processo` AS processo_numero_processo,"
                + "    processo.`idcliente` AS processo_idcliente,"
                + "   audiencia.`juiz_audiencia` AS audiencia_juiz_audiencia,"
                + "  audiencia.`local_audiencia` AS audiencia_local_audiencia,"
                + "    audiencia.`data_audiencia` AS audiencia_data_audiencia,"
                + "   audiencia.`id_audiencia` AS audiencia_id_audiencia,"
                + "    audiencia.`hora_audiencia` AS audiencia_hora_audiencia,"
                + "    cliente.nome_cliente as nome_cliente"
                + " FROM "
                + " processo, audiencia, cliente"
                + " WHERE"
                + "   processo.id_processo = audiencia.id_processo"
                + "   and cliente.idcliente = processo.idcliente";
        if (tipo.equalsIgnoreCase("processo")) {
            sql += " AND processo.numero_processo =  " + nome;
        } else {
            sql += " and cliente.nome_cliente like '%" + nome + "'";
        }

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {

            CadastroAudienciaBean a = new CadastroAudienciaBean();

            a.setIdAudiencia(rs.getInt("audiencia_id_audiencia"));
            a.setJuizAudiencia(rs.getString("audiencia_juiz_audiencia"));
            a.setLocalAudiencia(rs.getString("audiencia_local_audiencia"));
            a.setDataAudiencia(rs.getString("audiencia_data_audiencia"));
            a.setHoraAudiencia(rs.getString("audiencia_hora_audiencia"));

            CadastroProcessoBean p = new CadastroProcessoBean();
            p.setIdProcesso(rs.getInt("processo_id_processo"));
            p.setNumeroProcesso(rs.getString("processo_numero_processo"));

            CadastroClienteBean c = new CadastroClienteBean();
            c.setIdcliente(rs.getInt("processo_idcliente"));
            c.setNome(rs.getString("nome_cliente"));

            a.setControleProcesso(p);
            a.setControleCliente(c);
            lista.add(a);

        }
        stmt.close();
        rs.close();
        con.close();
        return lista;
    }

    public static List<CadastroAudienciaBean> getLista() throws SQLException {
        List<CadastroAudienciaBean> lista = new ArrayList<CadastroAudienciaBean>();
        Connection con = Conexao.getConexao();
        String sql = "SELECT "
                + "    processo.`id_processo` AS processo_id_processo,"
                + "    processo.`numero_processo` AS processo_numero_processo,"
                + "    processo.`idcliente` AS processo_idcliente,"
                + "   audiencia.`juiz_audiencia` AS audiencia_juiz_audiencia,"
                + "  audiencia.`local_audiencia` AS audiencia_local_audiencia,"
                + "    audiencia.`data_audiencia` AS audiencia_data_audiencia,"
                + "   audiencia.`id_audiencia` AS audiencia_id_audiencia,"
                + "    audiencia.`hora_audiencia` AS audiencia_hora_audiencia,"
                + "    cliente.nome_cliente as nome_cliente"
                + " FROM "
                + " processo, audiencia, cliente"
                + " WHERE"
                + "   processo.id_processo = audiencia.id_processo"
                + "   and cliente.idcliente = processo.idcliente";

        PreparedStatement stmt = con.prepareStatement(sql);
        ResultSet rs = stmt.executeQuery();
        while (rs.next()) {

            CadastroAudienciaBean a = new CadastroAudienciaBean();

            a.setIdAudiencia(rs.getInt("audiencia_id_audiencia"));
            a.setJuizAudiencia(rs.getString("audiencia_juiz_audiencia"));
            a.setLocalAudiencia(rs.getString("audiencia_local_audiencia"));
            a.setDataAudiencia(rs.getString("audiencia_data_audiencia"));
            a.setHoraAudiencia(rs.getString("audiencia_hora_audiencia"));

            CadastroProcessoBean p = new CadastroProcessoBean();
            p.setIdProcesso(rs.getInt("processo_id_processo"));
            p.setNumeroProcesso(rs.getString("processo_numero_processo"));

            CadastroClienteBean c = new CadastroClienteBean();
            c.setIdcliente(rs.getInt("processo_idcliente"));
            c.setNome(rs.getString("nome_cliente"));

            a.setControleProcesso(p);
            a.setControleCliente(c);
            lista.add(a);

        }
        stmt.close();
        rs.close();
        con.close();
        return lista;
    }

    public static String queryRelatorio(boolean opc, String tipo, String filtro) throws SQLException {
        String sql = "";
        if (opc) {
            sql = "SELECT "
                    + "    processo.`id_processo` AS processo_id_processo,"
                    + "    processo.`numero_processo` AS processo_numero_processo,"
                    + "    processo.`idcliente` AS processo_idcliente,"
                    + "   audiencia.`juiz_audiencia` AS audiencia_juiz_audiencia,"
                    + "  audiencia.`local_audiencia` AS audiencia_local_audiencia,"
                    + "    audiencia.`data_audiencia` AS audiencia_data_audiencia,"
                    + "   audiencia.`id_audiencia` AS audiencia_id_audiencia,"
                    + "    audiencia.`hora_audiencia` AS audiencia_hora_audiencia,"
                    + "    cliente.nome_cliente as nome_cliente"
                    + " FROM "
                    + " processo, audiencia, cliente"
                    + " WHERE"
                    + "   processo.id_processo = audiencia.id_processo"
                    + "   and cliente.idcliente = processo.idcliente";
        } else {
            sql = "SELECT "
                    + "    processo.`id_processo` AS processo_id_processo,"
                    + "    processo.`numero_processo` AS processo_numero_processo,"
                    + "    processo.`idcliente` AS processo_idcliente,"
                    + "   audiencia.`juiz_audiencia` AS audiencia_juiz_audiencia,"
                    + "  audiencia.`local_audiencia` AS audiencia_local_audiencia,"
                    + "    audiencia.`data_audiencia` AS audiencia_data_audiencia,"
                    + "   audiencia.`id_audiencia` AS audiencia_id_audiencia,"
                    + "    audiencia.`hora_audiencia` AS audiencia_hora_audiencia,"
                    + "    cliente.nome_cliente as nome_cliente"
                    + " FROM "
                    + " processo, audiencia, cliente"
                    + " WHERE"
                    + "   processo.id_processo = audiencia.id_processo"
                    + "   and cliente.idcliente = processo.idcliente";
            if (tipo.equalsIgnoreCase("processo")) {
                sql += " AND processo.numero_processo like '%" + filtro + "'";
            } else {
                sql += " AND cliente.nome_cliente like '%" + filtro + "'";
            }
        }
        return sql;
    }
    /*
     * public static List<CadastroAudienciaBean> getlList(String nome, int aux)
     * throws SQLException { List<CadastroAudienciaBean> lista = new
     * ArrayList<CadastroAudienciaBean>(); String saux = "";
     *
     * if(aux == 1){ saux = "pn. nome like '%"+nome+"%'"; }else if(aux == 2){
     * saux = "pn.cpf = '"+nome+"'"; }else if(aux == 3){ saux = "pn.cnpj =
     * '"+nome+"'"; }else if(aux == 0){ saux = "nome like '%%'"; }
     *
     * Connection con = Conexao.getConexao(); String sql = "SELECT
     * cid.id_cidade, cid.cidade, cid.uf, pn.id_cliente," + "pn.tipo_pessoa, " +
     * "pn.nome, " + "pn.razao_social," + "pn.responsavel," + "pn.cpf," +
     * "pn.cnpj," + "pn.ie," + "pn.endereco," + "pn.bairro," + "pn.cep," +
     * "pn.telefone," + "pn.celular," + "pn.email " + "FROM " + "cidade cid," +
     * "cliente pn " + "WHERE cid.id_cidade = pn.id_cidade and "+saux;
     * PreparedStatement stmt = con.prepareStatement(sql); ResultSet rs =
     * stmt.executeQuery(); while (rs.next()) {
     *
     * CadastroProcessoBean p = new CadastroProcessoBean();
     * p.setIdProcesso(rs.getInt("id_processo"));
     * p.setNumeroProcesso(rs.getString("numero_processo"));
     * p.setControleCliente("");
     *
     * CadClienteBean c = new CadClienteBean();
     * c.setIdCliente(rs.getInt("id_cliente"));
     * c.setTipoPessoa(rs.getString("tipo_pessoa"));
     * c.setNome(rs.getString("nome"));
     * c.setRazao(rs.getString("razao_social"));
     * c.setResponsavel(rs.getString("responsavel"));
     * c.setCpf(rs.getString("cpf")); c.setCnpj(rs.getString("cnpj"));
     * c.setIe(rs.getString("ie")); c.setEndereco(rs.getString("endereco"));
     * c.setBairro(rs.getString("bairro")); c.setCep(rs.getString("cep"));
     * c.setTelefone(rs.getString("telefone"));
     * c.setCelular(rs.getString("celular")); c.setEmail(rs.getString("email"));
     * c.setCidade(p); lista.add(c); } stmt.close(); rs.close(); con.close();
     * return lista; }
     */
}